﻿
//饿汉式单例模式（Eager Initialization）—— 线程安全版（C++11 起推荐）​​
//​​特点​​：
//
#include<iostream>
class Singleton {
public:
    // 1. 提供全局访问点（返回单例指针的解引用）
    static Singleton& getInstance() {
        return *instance;
    }
    // 2. 禁用拷贝构造和赋值操作
    Singleton(const Singleton&) = delete;
    Singleton& operator=(const Singleton&) = delete;
    // 3. 示例成员函数
    void doSomething() {
        std::cout << "Singleton is working." << std::endl;
    }
private:
    // 4. 私有化默认构造函数
    Singleton() = default;
    // 5. 私有化析构函数（可选，防止外部delete）
    ~Singleton() = default;
    // 6. 静态成员指针（存放单例实例）
    static Singleton* instance;
};
// 7. 在类外初始化静态指针（程序启动时new）
Singleton* Singleton::instance = new Singleton();
// 8. 可选：注册atexit在程序结束时自动释放
// （需注意全局对象析构顺序问题）
int main() {
    std::cout << "Entering main()..." << std::endl;
    Singleton::getInstance().doSomething(); // 直接使用已初始化的实例
    return 0;
}